#ifndef CLONABLE_PACKAGE_H
#define CLONABLE_PACKAGE_H

#include "i_package.h"

template<typename T>
class ClonablePackage : public IPackage
{
public:
	virtual IPackage::Ptr clone() 
	{ 
		return  IPackage::Ptr(T::create(), T::free);
	}
};

#endif